package com.pointcircle.core.web;

import java.io.Serializable;

import org.springframework.beans.factory.annotation.Autowired;

import com.pointcircle.core.IRepository;
import com.pointcircle.core.JpaBaseEntity;

public abstract class AbstractCrudRest<
		T extends JpaBaseEntity<ID>, 
		ID extends Serializable, 
		EV extends EntityVo<T, ID>, 
		FV extends FormVo<ID>,
		SV extends SearchVo<T, ID>
	>
	implements IFindByIdRest<T, ID, EV>, 
	IFindByIdsRest<T, ID, EV>, 
	IFindAllRest<T, ID, EV>,
	IAddRest<T, ID, EV, FV>, 
	IEditRest<T, ID, EV, FV>, 
	IRemoveRest<T, ID, EV>,
	ISearch<T, ID, EV, SV> {
	
	@Autowired
	protected IRepository<T, ID> respotiroy;
	
	@Override
	public IRepository<T, ID> getRepository() {
		return respotiroy;
	}
}
